#ifndef HPLC_QINFINE_AUTOSAMPLER_PROTOCOL_H
#define HPLC_QINFINE_AUTOSAMPLER_PROTOCOL_H

#include "common/hplcqinfineprotocolcommon.h"
#include "common/hplcqinfinesendcommonsystempacket.h"
#include "hplcqinfineautosamplersendpacket.h"
#include "hplcqinfineautosamplersendsystempacket.h"
#include "modulehplcautosamplerdefine.h"

namespace hplc
{
namespace qinfine
{

class HplcQinfineAutoSamplerProtocolData;
class HplcQinfineAutoSamplerProtocol : public HplcQinfineProtocolCommon
{
    Q_OBJECT
public:
    HplcQinfineAutoSamplerProtocol(AutoSamplerParam &param, QObject *parent = nullptr);
    virtual ~HplcQinfineAutoSamplerProtocol();

    HplcQinfineAutoSamplerSendPacket *getAutoSamplerSender();
    HplcQinfineAutoSamplerSendSystemPacket *getAutoSamplerSystemSender();

    void setModel(quint8 model) override;

protected:
    HplcQinfineAutoSamplerProtocol(HplcQinfineAutoSamplerProtocolData &data, AutoSamplerParam &param, QObject *parent = nullptr);

private:
    hplc::AutoSamplerParam			*m_param = nullptr;
};

} // qinfine
} // hplc

#endif // HPLC_QINFINE_AUTOSAMPLER_PROTOCOL_H
